package com.soul.sys.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.soul.common.service.CommService;
import com.soul.sys.bean.dto.LoginDto;
import com.soul.sys.bean.dto.RegisterUserDto;
import com.soul.sys.bean.dto.user.UserAddDto;
import com.soul.sys.bean.dto.user.UserSearchDto;
import com.soul.sys.bean.dto.user.UserUpdateDto;
import com.soul.sys.bean.po.UserPo;
import com.soul.sys.bean.vo.LoginVo;
import com.soul.sys.bean.vo.UserInfoVo;
import com.soul.common.bean.vo.UserVo;

import java.util.Collection;
import java.util.List;

/**
 * <p>
 * 用户表 服务类
 * </p>
 *
 * @author sws
 * @since 2022-11-23 01:06:23
 */
public interface UserService extends CommService<UserPo> {

    LoginVo login(LoginDto loginDto);

    LoginVo loginToken(LoginDto loginDto);

    void logout();

    UserInfoVo getLoginInfo();

    IPage<UserVo> queryUserList(Integer page, Integer size, UserSearchDto searchDto);

    void addUser(UserAddDto addDto);

    void updateUser(UserUpdateDto updateDto);

    void delUser(List<Long> ids);

    List<UserVo> queryUserByIds(Collection<Long> ids);

    void addRegisterUser(RegisterUserDto registerUserDto);

    UserVo getInfoById(Long id);
}
